package com.cskaoyan.javase.oop2._0encapsulate._2question;

/**
 * @description: 性别为什么不推荐isMale/isFemale
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 性别为什么不推荐isMale/isFemale: 和get/set方法有关
 *
 * 布尔类型的get/set方法比较独特,它使用isXxx的形式表示get方法
 * 如果布尔类型的成员变量本身就叫isXxx,那么它的get方法会和变量名同名
 *
 * 这在有些时候会导致错误:
 *      有些框架会依赖于get方法获取属性值,如果是布尔类型的会导致get方法识别错误的变量名,最终找不到该变量,程序报错
 *
 */
public class Demo {
}

class A {
    //布尔类型的get/set方法比较独特
    private boolean flag;
    private boolean isMale;

    public boolean isMale() {
        return isMale;
    }

    public void setMale(boolean male) {
        isMale = male;
    }

    public boolean isFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }
}
